package com.ruoyi.standingbook.recycle.service;

import com.ruoyi.common.core.page.TableDataInfo;
import com.ruoyi.common.core.domain.PageQuery;
import com.ruoyi.common.domain.vo.RecycleErecordVo;
import com.ruoyi.standingbook.cleaning.domain.vo.CleaningImportDetailVo;
import com.ruoyi.standingbook.recycle.domain.bo.RecycleBo;
import com.ruoyi.standingbook.recycle.domain.vo.RecycleImportDetailVo;
import com.ruoyi.standingbook.recycle.domain.vo.RecyclePicVo;
import com.ruoyi.standingbook.recycle.domain.vo.RecycleVo;
import com.ruoyi.standingbook.sorting.domain.vo.SortingPicVo;

import java.util.Collection;
import java.util.List;

/**
 * 垃圾清运Service接口
 *
 * @author cc
 * @date 2023-04-28
 */
public interface IRecycleService {

    /**
     * 查询垃圾清运
     */
    RecycleVo queryById(Long id);

    /**
     * 查询垃圾清运列表
     */
    TableDataInfo<RecycleVo> queryPageList(RecycleBo bo, PageQuery pageQuery);

    /**
     * 查询垃圾清运列表
     */
    List<RecycleVo> queryList(RecycleBo bo);

    /**
     * 查询Excel垃圾清运列表
     */
    List<RecycleVo> queryExcelList(RecycleBo bo);

    /**
     * 新增垃圾清运
     */
    Boolean insertByBo(RecycleBo bo);

    /**
     * 修改垃圾清运
     */
    Boolean updateByBo(RecycleBo bo);

    /**
     * 校验并批量删除垃圾清运信息
     */
    Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);

    /**
     * 批量插入
     */
    Boolean batchInsert(List<RecycleImportDetailVo> voList);

    /**
     * 获取垃圾清运电子档案信息
     *
     * @param bo
     * @return
     */
    RecycleErecordVo getRecycleErecordInfo(RecycleBo bo);

    List<RecycleVo> queryListByDate(String date);

    List<RecyclePicVo> getCheckedPicByDate(String date);

    List<RecyclePicVo> getCleaningPicByDate(String date);

    List<RecyclePicVo> getComingPicByDate(String date);

    Double getWeightSumByDate(String date);

    Integer getBarrelageByYearToNow();
}
